package com.yyfax.pay.depository.dao;

import org.apache.ibatis.annotations.Param;

import com.yyfax.pay.depository.domain.FuiouArtificialRegister;

/**
 * 法人用户开户DAO
 *
 * @author yejc
 * @date 2017-11-09
 * @since v2.0.0
 */
public interface FuiouArtificialRegisterDao {
	/**
	 * 根据主键删除
	 *
	 * @author yejc
	 * @date 2017-11-09
	 * @since v2.0.0
	 */
	int deleteByPrimaryKey(String busiId);

	/**
	 * 保存实体对象
	 *
	 * @author yejc
	 * @date 2017-11-09
	 * @since v2.0.0
	 */
	int insert(FuiouArtificialRegister record);

	/**
	 * 根据主键查询
	 *
	 * @author yejc
	 * @date 2017-11-09
	 * @since v2.0.0
	 */
	FuiouArtificialRegister selectByPrimaryKey(String busiId);

	/**
	 * 根据主键查询
	 *
	 * @author yejc
	 * @date 2017-11-09
	 * @since v2.0.0
	 */
	int updateByPrimaryKey(FuiouArtificialRegister record);

	/**
	 * 根据订单号和商户号查询
	 *
	 * @param orderId
	 * @param merchantCode
	 * @return
	 * @author yejc
	 * @date 2017-11-09
	 * @since v2.0.0
	 */
	FuiouArtificialRegister selectByOrderIdMerchantCode(@Param("orderId") String orderId, @Param("merchantCode") String merchantCode);

	// /**
	// * 根据主键和状态更新状态
	// *
	// * @param oriState
	// * @param tarState
	// * @param busiId
	// * @param currentDateTime
	// * @return
	// * @author yejc
	// * @date 2017-11-09
	// * @since v2.0.0
	// */
	// int updateStateByBusiId(@Param("oriState") String oriState, @Param("tarState") String tarState, @Param("busiId") String busiId,
	// @Param("currentDateTime") String currentDateTime);

	/**
	 * 更新订单状态
	 * 
	 * @author buyi
	 * @date 2018-01-15 14:45:09
	 * @since v2.0.7
	 * @param busiId
	 * @param destState
	 * @param origState
	 * @param rspCode
	 * @param rspMsg
	 * @return
	 */
	public int updateStateByBusiId(@Param("busiId") String busiId, @Param("destState") String destState, @Param("origState") String origState,
			@Param("rspCode") int rspCode, @Param("rspMsg") String rspMsg);

	/**
	 * 根据主键更新状态和响应
	 *
	 * @param state
	 * @param busiId
	 * @param currentDateTime
	 * @param rspCode
	 * @param rspMsg
	 * @return
	 * @author yejc
	 * @date 2017-11-09
	 * @since v2.0.0
	 */
	int updateStateAndRspByBusiId(@Param("state") String state, @Param("busiId") String busiId, @Param("currentDateTime") String currentDateTime,
			@Param("rspCode") Integer rspCode, @Param("rspMsg") String rspMsg);

	/**
	 * 根据五要素查询
	 * 
	 * @author buyi
	 * @date 2018-01-16 16:51:10
	 * @since v2.0.7
	 * @param merchantCode
	 * @param merchantUserId
	 * @param artificialName 法人姓名
	 * @param idNoCip 证件号密文
	 * @param phone 手机号
	 * @param enterpriseName 企业名称
	 * @param cardNoCip 银行卡号密文
	 * @param respCode 响应结果，可传null
	 * @return
	 */
	FuiouArtificialRegister selectByFiveElements(@Param("merchantCode") String merchantCode, @Param("merchantUserId") String merchantUserId,
			@Param("artificialName") String artificialName, @Param("idNoCip") String idNoCip, @Param("phone") String phone,
			@Param("enterpriseName") String enterpriseName, @Param("cardNoCip") String cardNoCip, @Param("respCode") Integer respCode);
}